SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCCANJ_CLIE_I04]
/*-------------------------------------------------------*/
/*---Empresa              : OFISIS S.A.                --*/
/*---Cliente              : OFISIS S.A.                --*/
/*---Sistema              : TESORERIA                  --*/
/*---M÷dulo               : Empresa                    --*/
/*---Programa             : Grabaci÷n Documentos       --*/
/*                          Generadas x Letras         --*/
/*                          por Canje                  --*/
/*---			    CTAS POR COBRAR            --*/  
/*---Script               : tccanj_p.sql               --*/
/*---Nombre SP            : SP_TCCANJ_CLIE_I04         --*/
/*---Desarrollado por     : Eduardo Vivar Pomiano      --*/
/*---Fecha Creaci÷n       : 31/01/2000                 --*/
/*---Base Datos           : Microsoft Sql Server       --*/
/*---Versi÷n              : 7.0                        --*/
/*---Invoca a SP          :                            --*/
/*-------------------------------------------------------*/
/*-------------------------------------------------------*/
/*---Comentarios                                       --*/
/*---                                                  --*/
/*---                                                  --*/
/*-------------------------------------------------------*/
/*-------------------------------------------------------*/
/*---Drop Proc SP_TCCANJ_CLIE_I04                      --*/
/*---Grant Execute on SP_TCCANJ_CLIE_I04 to public         --*/ 
/*---SP_TCCANJ_CLIE_I04 '99', 'OFISIS', '10253647850', 'FAC', '001-0000001', '00000001', 
  	2, 1711, 1711, 1711, 1711, 1711, 'ACT'  */
/*-------------------------------------------------------*/
 @ISCO_EMPR        TD_VC_002, 
 @ISCO_USUA_MODI   TD_VC_008_USUA,
 @ISCO_CLIE        TD_VC_020,
 @ISCO_UNID_CONC   TD_VC_003,
 @IDFE_CANJ         TD_DT_001,
 @ISCO_TIPO_DOCU   TD_VC_003,
 @ISNU_DOCU_CLIE   TD_VC_020,
 @ISNU_CANJ        TD_VC_008,
 @INNU_SECU_CANJ   TD_IN_001,
 @INIM_DOCU 	   TD_NU_016_004,
 @INIM_SALD_DOCU   TD_NU_016_004,
 @INIM_SALD_CONV   TD_NU_016_004,
 @INIM_CANJ_MCAN   TD_NU_016_004,
 @INIM_CANJ_MDOC   TD_NU_016_004,
 @ISCO_ESTA_ORIG   TD_VC_003,
 @ISST_CIER_DOCU   TD_VC_001
	As
Declare
   @VNNU_SECU	    TD_IN_001,
   @VSCO_ESTA_DOCU  TD_VC_003,
   @VSCO_DOCU_LETR  TD_VC_003
 
 Begin Tran SP_TCCANJ_CLIE_I04


   Select @VSCO_DOCU_LETR = Null, @VSCO_ESTA_DOCU = Null


/*
If Not Exists ( Select 	CO_EMPR
		From 	TDCANJ_CLIE
		Where 	CO_EMPR = @ISCO_EMPR
			AND CO_UNID_CONC = @ISCO_UNID_CONC
			AND CO_CLIE = @ISCO_CLIE
			AND NU_CANJ = @ISNU_CANJ
			AND FE_CANJ = @IDFE_CANJ
			AND NU_SECU_CANJ = @INNU_SECU_CANJ)
*/

		Select 	@INNU_SECU_CANJ = Max(NU_SECU_CANJ) + 1
		From 	TDCANJ_CLIE
		Where 	CO_EMPR = @ISCO_EMPR
			AND CO_UNID_CONC = @ISCO_UNID_CONC
			AND CO_CLIE = @ISCO_CLIE
			AND NU_CANJ = @ISNU_CANJ
			AND FE_CANJ = @IDFE_CANJ

   Insert Into  TDCANJ_CLIE (CO_EMPR, CO_UNID_CONC, CO_CLIE, NU_CANJ, FE_CANJ, NU_SECU_CANJ, NU_ORDE_LETR, 
		NU_LETR_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, IM_DOCU, IM_SALD_DOCU, 
		IM_SALD_CONV, IM_CANJ_MCAN, IM_CANJ_MDOC, ST_CIER_DOCU, 
		CO_USUA_MODI, CO_ESTA_ORIG )
   Values ( @ISCO_EMPR, @ISCO_UNID_CONC, @ISCO_CLIE, @ISNU_CANJ, @IDFE_CANJ, @INNU_SECU_CANJ, NULL,
   	    NULL, @ISCO_TIPO_DOCU, @ISNU_DOCU_CLIE, @INIM_DOCU, @INIM_SALD_DOCU, 
	    @INIM_SALD_CONV, @INIM_CANJ_MCAN, @INIM_CANJ_MDOC, @ISST_CIER_DOCU, 
	    @ISCO_USUA_MODI, @ISCO_ESTA_ORIG )

   If @@error <> 0
      Begin
        Rollback tran
     Return
      End    

    Exec SP_TTDOCU_CNTB_Q01 6, @VSCO_DOCU_LETR OutPut

    Exec SP_TTTIES_DOCU_Q01 3, @VSCO_ESTA_DOCU OutPut

--   IF @INIM_SALD_DOCU > @INIM_CANJ_MDOC 
   IF @ISST_CIER_DOCU = 'N'
        SELECT @VSCO_ESTA_DOCU = @ISCO_ESTA_ORIG

   
   If @VSCO_DOCU_LETR = @ISCO_TIPO_DOCU 
      Begin

        Select  @VNNU_SECU = ISNULL(Max(NU_SECU),0) + 1
        From    TDKARD_DOCU
        Where   CO_EMPR = @ISCO_EMPR

        Insert Into TDKARD_DOCU (CO_EMPR, NU_SECU,CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_ESTA_ACTU,
  	   	CO_ESTA_DOCU, NU_CORR_MODI )
        Values ( @ISCO_EMPR, @VNNU_SECU, @VSCO_DOCU_LETR, @ISNU_DOCU_CLIE, @ISCO_CLIE,
	         @VSCO_ESTA_DOCU, @ISCO_ESTA_ORIG, @VNNU_SECU )  

        If @@error <> 0
           Begin
             Rollback tran
             Return
           End    


          Update TMLETR_CLIE
          Set 	CO_ESTA_DOCU = @VSCO_ESTA_DOCU, 
          	NU_CANJ = @ISNU_CANJ,
          	IM_PAGA = IM_PAGA + @INIM_CANJ_MDOC,
          	CO_USUA_MODI = @ISCO_USUA_MODI, 
          	FE_USUA_MODI = Getdate()
          Where	CO_EMPR = @ISCO_EMPR 
      		And NU_LETR_CLIE = @ISNU_DOCU_CLIE    
      End
   Else
      	  Update TMDOCU_CLIE 
          Set 	CO_ESTA_DOCU = @VSCO_ESTA_DOCU, 
          	NU_CANJ = @ISNU_CANJ,
          	IM_PAGA = IM_PAGA + @INIM_CANJ_MDOC,
 		CO_USUA_MODI = @ISCO_USUA_MODI, 
          	FE_USUA_MODI = Getdate()
          Where CO_EMPR = @ISCO_EMPR 
      		And CO_TIPO_DOCU = @ISCO_TIPO_DOCU 
      		And NU_DOCU_CLIE = @ISNU_DOCU_CLIE

 

   If @@error <> 0
      Begin
        Rollback tran
        Return
      End    

Commit Tran

/*------------------------- Fin ------------------------------*/


GO
